IAxis.GearInPos method
Commands a gear ratio between the position of the slave and master axes from the synchronization point onwards. The number of slaves is up to 32.
NOTE: To use SetGearInPos(), the master axis must already be moving and with constant velocity.
How it works:
First, the slave axis does an IAxis.MoveContinuousAbsolute method move to reach the SlaveSyncPosition at the right time with the right velocity. The Velocity, Acceleration, and Deceleration inputs are for this IAxis.MoveContinuousAbsolute method move. While this move is running, the StartSync output is TRUE. Once this motion is done, the InSync output is TRUE.
GearInPos profiles:
- If MasterStartDistance is non-zero, the slave axis will start moving once the master position reaches MasterSyncPosition +- MasterStartDistance. Velocity is treated as max velocity that may not be reached, so basically it is omitted unless it is too low and then an error will be triggered as no compatible profile can be generated.
- If MasterStartDistance is zero and Velocity is non-zero, the shortest possible profile will be calculated based on the maximum velocity provided.
- If both MasterStartDistance and Velocity are zero, KINGSTAR will generate the smoothest profile as possible.
Namespace: IntervalZero.KINGSTAR.Base.Class
Assembly: IntervalZero.KINGSTAR.Base.Class (in IntervalZero.KINGSTAR.Base.dll) Version: 4.4.0.0
Syntax
IGearInPosCommand GearInPos(
IAxis master,
bool permanent,
double ratio,
McSource masterValueSource,
double masterSyncPosition,
double slaveSyncPosition,
McSyncMode syncMode,
double masterStartDistance,
double velocity,
double acceleration,
double deceleration,
double jerk,
McBufferMode bufferMode
)
Function GearInPos(
master As IAxis,
permanent As Boolean,
ratio As Double,
masterValueSource As McSource,
masterSyncPosition As Double,
slaveSyncPosition As Double,
syncMode As McSyncMode,
masterStartDistance As Double,
velocity As Double,
acceleration As Double,
deceleration As Double,
jerk As Double,
bufferMode As McBufferMode
)As IGearInPosCommand
Parameters
master
Type: IAxis
The reference to the master axis.
permanent
Type: bool
Determines whether the gear state is preserved after the motor is disabled.
true: the gear state is preserved even if the motor is disabled. For example, if the master axis is enabled, the slave axis will be enabled. If an error has occurred on the master, it occurred on the slave too.
false: the gear state won't be preserved after the motor is disabled.
ratio
Type: double
The gear ratio.
masterValueSource
Type: McSource
Defines the source for synchronization. See McSource.
- mcSetValue – synchronization on master set value. We suggest you use these settings.
- mcActualValue – synchronization on master actual value. This setting may not be stable.
- mcSecondEncoderValue – actual value of the secondary encoder of the axis.
NOTE: mcSecondEncoderValue is not supported yet.
masterSyncPosition
Type: double
The master's position where the slave is in sync with the master.
slaveSyncPosition
Type: double
The slave's position where the slave is in sync with the master.
syncMode
Type: McSyncMode
Defines the way to synchronize.
masterStartDistance
Type: double
The distance for the master to travel to synchronize with the slave (when the slave axis is started to get into synchronization).
velocity
Type: double
The maximum velocity during the synchronization phase.
acceleration
Type: double
The maximum acceleration during the synchronization phase.
deceleration
Type: double
The maximum deceleration during the synchronization phase.
jerk
Type: double
The maximum jerk during the synchronization phase.
bufferMode
Type: McBufferMode
Defines how to blend the velocity of two methods.
Return value
Type: IGearInPosCommand
Returns the properties of a gear-ratio move.
Remarks
- If MasterStartDistance is implemented, any previous motion is continued until the master crosses either MasterSyncPosition or MasterStartDistance in the correct direction (according to the sign of MasterStartDistance). When a stop command is run on the slave axis before the synchronization has happened, it cancels the synchronization and the method sends CommandAborted.
- If the MasterStartDistance is not specified, the system itself can calculate the set point for synchronization based on the other relevant inputs.
- In SyncMode, the difference between
mcCatchUp
andmcSlowDown
is the energy needed to synchronize. Compared tomcCatchUp
,mcSlowDown
needs lower energy.
See also